package concursos.daos;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import org.jboss.crypto.CryptoUtil;

import concursos.modelos.Usuario;

public class LoginDAO {

	private EntityManager manager;
	private Usuario user = null;

	public LoginDAO(EntityManager manager) {
		this.manager = manager;
	}

	public Usuario login(String usuario, String senha) {
		String consulta = "from Usuario c where c.nomeUsuario ='" + usuario
				+ "'";

		Query q = this.manager.createQuery(consulta);

		try {
			user = (Usuario) q.getSingleResult();
		} catch (Exception e) {
			return null;
		}

		if (verificarSenha(senha))
			return user;
		return null;
	}

	public boolean verificarSenha(String senha) {
		String hashAtual = this.user.getSecString();
		String senhaAtual = this.user.getSenha();

		System.out.println("verificando: "
				+ verficarSenhaHash(senha, hashAtual, senhaAtual));

		if (verficarSenhaHash(senha, hashAtual, senhaAtual))
			return true;
		return false;
	}

	public static boolean verficarSenhaHash(String senha, String secString,
			String senhaDB) {
		return CryptoUtil.createPasswordHash("MD5", "hex", null, null,
				senha.concat(secString)).equals(senhaDB);
	}

}
